<?php

class RecoveryController extends ControllerBase
{
	public $defaultAction = 'recovery';
	public function init() {
		Util::app()->theme = SITE_THEME;
		$this->layout = '//layouts/full';
		parent::init();
	}

	/**
	 * Recovery password
	 */
	public function actionRecovery () {
		$form = new UserRecoveryForm;
		if (Yii::app()->user->id) {
			$this->redirect(Yii::app()->controller->module->returnUrl);
		}
		else {
			$email = ((isset($_GET['email']))?$_GET['email']:'');
			$activkey = ((isset($_GET['activkey']))?$_GET['activkey']:'');
			if ($email&&$activkey) {
				$form2 = new UserChangePassword;
	    		$find = User::model()->notsafe()->findByAttributes(array('email'=>$email));
	    		if(isset($find)&&$find->activkey==$activkey) {
		    		if(isset($_POST['UserChangePassword'])) {
						$form2->attributes=$_POST['UserChangePassword'];
						if($form2->validate()) {
							$find->password = Yii::app()->controller->module->encrypting($form2->password);
							$find->activkey=Yii::app()->controller->module->encrypting(microtime().$form2->password);
							if ($find->status==0) {
								$find->status = 1;
							}
							$find->save();
							Yii::app()->user->setFlash('recoveryMessage',UserModule::t("New password is saved."));
							$this->redirect(Yii::app()->controller->module->recoveryUrl);
						}
					}
					$this->render('changepassword',array('form'=>$form2));
	    		}
	    		else {
	    			Yii::app()->user->setFlash('recoveryMessage',UserModule::t("Incorrect recovery link."));
					$this->redirect(Yii::app()->controller->module->recoveryUrl);
	    		}
	    	}
	    	else {
		    	if(isset($_POST['UserRecoveryForm'])) {
		    		$form->attributes	= $_POST['UserRecoveryForm'];
		    		if($form->validate()) {
		    			$user			= User::model()->notsafe()->findbyPk($form->user_id);
						$activation_url = 'http://' . $_SERVER['HTTP_HOST'].$this->createUrl(implode(Yii::app()->controller->module->recoveryUrl),array("activkey" => $user->activkey, "email" => $user->email));

						$new_pass = substr(uniqid('', true), -7);
						$subject = "Bạn đã yêu cầu cấp lại mật khẩu từ quản trị Khuyến Tài club.";

		    			$message = "Bạn đã yêu cầu nhận lại mật khẩu từ quản trị Khuyến Tài club, mật khẩu mới của bạn là : $new_pass <br>
		    						Vì vấn đề bảo mật, vui lòng thay đổi lại mật khẩu cho lần đăng nhập tới, cảm ơn. <br>
		    						Mọi thắc mắc vui lòng liên hệ với quản trị Khuyến Tài club thông qua địa chỉ mail " . Yii::app()->params['adminEmail'];

		    			//UserModule::sendMail($user->email,$subject,$message);
						// Send mail
		    			$send = Util::sendMail($user->email,Yii::app()->params['adminEmail'],$subject,$message);
		    			if ($send) {
		    				// Update new password
		    				$user->password = UserModule::encrypting($new_pass);
		    				$user->save();
							Yii::app()->user->setFlash('recoveryMessage',UserModule::t("Mật khẩu mới sẽ được gửi đến địa chỉ hộp thự điện tử của bạn trong 24 giờ tới, vui lòng kiểm tra."));
			    			$this->refresh();
		    			}
		    			else {
		    				Yii::app()->user->setFlash('recoveryMessage',UserModule::t("Xảy ra lỗi khi gửi mail."));
			    			$this->refresh();
		    			}
		    		}
		    	}
	    		$this->render('recovery',array('form'=>$form));
	    	}
	    }
	}
}